<?php
use App\Models\UserBase;
use App\Models\StMedicalNumber;
use App\Models\Hospital;
/**
 * 获取本周开始的日期
 * @return false|string
 */
function weekStart()
{
    //当前日期
    $sdefaultDate = date("Y-m-d");
    //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
    $first=1;
    //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
    $w=date('w',strtotime($sdefaultDate));
    //获取本周开始日期，如果$w是0，则表示周日，减去 6 天
    $week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'));

    return $week_start;

}

/**
 * 获取上周开始的日期
 * @return false|string
 */
function  lastWeekStart()
{
    //当前日期
    $sdefaultDate = date("Y-m-d");
    //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
    $first=1;
    //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
    $w=date('w',strtotime($sdefaultDate));
    //获取本周开始日期，如果$w是0，则表示周日，减去 6 天
    $week_start=date('Y-m-d',strtotime("$sdefaultDate -".($w ? $w - $first : 6).' days'));

    //本周结束日期
    $week_end=date('Y-m-d',strtotime("$week_start +6 days"));

    $last_weekend = date('Y-m-d',strtotime("$week_end-2 week + 1 day"));//获取的是上周周一的日期

    return $last_weekend;
}

/**
 * 根据用户的角色返回所管辖的医院的ids或者医生的ids
 * @param $user_id
 * @param $type
 * @return array
 */
function hospital_ids_range($user_id,$type)
{
    $user = UserBase::where('id',$user_id)->first();
    // 1西医（默认），2中医，3中西医
    $hospitalType = StMedicalNumber::getTypeByHospitalId($user->hospital_id);
//        $u_type = $this->request->input('u_type',2);
    if ($user->isAdmin()) {// 平台管理员->所有有医生的医院下的所有医生
        if ($hospitalType === 1) {
            $hospitals = Hospital::hasDoctors()
                ->select(['id', 'name'])
                ->where('type', $hospitalType)
                ->get();
        } else {
            $hospitals = Hospital::hasDoctors()
                ->select(['id', 'name'])
                ->whereIn('type', [2, 3])
                ->get();
        }
        $doctors = $hospitals->first()->doctors(['id', 'name'])->getResults();
    } elseif ($user->isDoctorsAdmin()) {// 医院管理员-》一个医院下的所有医生
        $hospitals = $user->hospital()->getQuery()->select(['id', 'name'])->first();
        $doctors = $hospitals->doctors(['id', 'name'])->getResults();
    } else {// (医生 || 区域管理员)-》本人
        $hospitals = $user->hospital()->getQuery()->select(['id', 'name'])->get();
        $doctors = $user;
    }

    if($type==1){
        return  $hospitals;
    }elseif ($type==2){
        return  $doctors;
    }else{
        return [
            'hospital'=>$hospitals,
            'doctors' =>$doctors
        ];
    }

    return [];
}
